package com.heima.kafka.controller;

import com.heima.kafka.pojo.User;
import com.alibaba.fastjson.JSON;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

    @Autowired
    //KafkaTemplate是Spring提供的一个用于Kafka消息发送的高级抽象类
    //泛型<String, String>表示消息的键和值都是字符串类型
    private KafkaTemplate<String,String> kafkaTemplate;

    /*@GetMapping("/hello")
    public String hello(){
        //调用kafkaTemplate的send()方法，向名为itcast-topic的Kafka主题发送一条消息，消息内容为“黑马程序员”
        //send()方法将消息发送到Kafka集群中的指定主题，Kafka会根据配置决定将消息发送到哪个分区
        kafkaTemplate.send("itcast-topic","黑马程序员");
        //HTTP响应返回给客户端
        return "你猜猜你代码能运行吗？";
    }*/

    @GetMapping("/hello")
    public String hello(){
        User user = new User();
        user.setUsername("xiaowang");
        user.setAge(18);

        kafkaTemplate.send("user-topic", JSON.toJSONString(user));

        return "ok";
    }
}